wx.cloud.init({ traceUser: true });
const db = wx.cloud.database();
const curd = {
    /**
     * 新增
     * @param collection String 集合名称
     * @param data Object 数据
     * @param callback Function 回调函数
     */
    create(collection, data, callback) {
        db.collection(collection)
            .add({ data })
            .then(res => { callback() })
            .catch(err => { console.error(err) });
    },

    /**
     * 修改
     * @param collection String 集合名称
     * @param id String 指定id
     * @param data Object 数据
     * @param callback Function 回调函数
     */
    update(collection, id, data, callback) {
        db.collection(collection)
            .doc(id)
            .update({ data })
            .then(res => { callback() })
            .catch(e => { console.error(e) })
    },

    /**
     * 查找
     * @param collection String 集合名称
     * @param where Object 查找条件
     * @returns res 结果
     */
    retrieve(collection, where, callback) {
        db.collection(collection)
            .where(where)
            .get()
            .then(res => { callback(res.data) })
            .catch(err => {
                console.error(err);
            });
    },

    /**
     * 删除
     * @param collection String 集合名称
     * @param id String 指定id
     * @param callback Function 回调函数
     */
    delete(collection, id, callback) {
        db.collection(collection)
            .doc(id)
            .remove()
            .then(res => {
                callback();
            })
            .catch(err => { console.error(err) });
    }
}

module.exports = curd;